Wenn du wirklich immer den letzten Eintrag auf der Stelle 1 stehen hast, dann musst du alle anderen verschieben. Das ist im EEPROM sicher ganz besonders schlecht, da ja nur beschränkt oft geschrieben werden kann.
Ich hätte jetzt gedacht, dass du das Array als Ring-Puffer benutzt und EEPointer auf die aktuelle Stelle zeigt.
Dabei brauchst du gar nichst umzukopieren es läuft alles über den Schreib-Zeiger auf die letzte Stelle. Dein Lese-Zeiger kann dann beliebig gesetzt werden. Kommt einer der Zeiger oben oder unten ans Ende, wird er entsprechend auf das andere Ende gesetzt. Da keine Einträge verschoben werden, geht das auch viel schneller.
Schwierig wird es nur, wenn die Elemente unterschiedlich lang sind, was bei dir aber ja nicht der Fall ist.