Die Atmegas haben (anders als bei einem PC) unterschiedlichen Speicher für Variablen und das Programm. Das Programm ist fest im Flash, für variable Werte bleibt dir nur das SRAM und das EEPROM.

Bei vielen Datenzugriffen sollte man auf den Einsatz des EEPROMs verzichten, da diese Speicherzellen nur ca. 100.000 Mal beschreiben lassen und ferner arg langsam sind.

Wieviel Platz die jeweiligen Atmegas an SRAM und EEPROM haben, steht in den Datenblättern. der ATMEGA32 hat (wenn ich das richtig im Kopf habe) 2048 Bytes SRAM, das würde also für 512 floats reichen, wenn dein Programm keine weiteren Variablen nutzen würde.

Zu externem SRAM wurde hier im Forum schon viel geschrieben, ich empfehle die Suchfunktion.

Wenn du wirklich "enorm viele" Daten speichern möchtest, ist es vielleicht am sinnvollsten, diese Daten per µC auf eine Speicherkarte zu schreiben (eine SD-Card z.B.) und diese Daten dann an einem PC auszuwerten.