Prinzipiell ghabe ich eigentlich immer dasselbe Problem wie du. Die Werte einfach in einer Schleife mitteln bring nicht viel, wel die Schleife wie du ja selber schreibts zu schnell durchläuft.
speicher kannst du allerdings sparen, wenn du die Werte nicht in Arrays abspeicherst um da den mittelwert draus zu bilden, sondern einfach X-Werte addierst und dann durch X teilst.
Der ADC lieffert ja nur Werte bis maximal 1023. Davon passen 32 in eine Integer-Variable und 64 in eine Word Variable.

Anstatt die Werte in einer Schleiffe aufzunehmen und zu addieren, kannst du auch in einem Interrupt einen Zähler mitlaufen lassen und die Messwerte in der Interruptroutine aufaddieren. Wenn der Zaäühler dann bei X ankommt, teilst du die Summe durch X, gibst den Mittelwert aufs Display oder an eine andere Variable aus und setzt den Zähler zurück.

Wenn deine Werte nicht zu sehr verrauscht sind, kannst du aber auch einfach ein bischen fuschen,indem du den Wert auf dem display einfach nur in grossen abständen, z.B. einmal pro Minute refreshst.

Wenn dein Timer z.B. alle 10 mS einen interrupt auslöst, kannst du darin ja einen Zähler hochlaufen lassen.
In deiner Hauptschleife fragst du dann den Zähler ab, wenn der grösser 6000 ist, ist eine Minute um. Dann refreshst du dein Display und setzt den Zähler zurück.