memorizzare un numero di telefono su eeprom

ciao.
non prenderlo come un rimprovero, stavo solo esponendo il mio punto di vista.

EEPROM: come ha scritto anche fabpolli, nella libreria EEPROM ci sono 2 metodi che permettono di leggere e scrivere tipi di dato diversi dal byte. se guardi nei link del reference che vedi sopra, capisci come funzionano.
tutto il procedimento che hai fatto tu è assolutamente corretto. per come ragiono io, però, è più semplice e immediato usare un metodo già pronto che con una sola istruzione fa quello che altrimenti devi fare con 5 / 6 righe di codice... tutto qua.

LCD: prima di ogni lcd.print(key); metti un lcd.setCursor(0, 1);
così però usi sempre la prima posizione e sovrascrivi il carattere precedente. visto che usi la variabile j per salvare la cifra nella posizione corretta dell'array, puoi provare ad usarla anche per posizionarti sul LCD. qualcosa tipo lcd.setCursor(j,1);

ATOL: non contestavo l'uso di una funzione rispetto ad un'altra, ma il giro che fai... char array => numero => string...
sicuro che la libreria che usi non accetti anche gli array di char?
se proprio vuoi usare la classe string... sicuro che non ci sia un modo per convertire direttamente da char array a string?
e comunque probabilmente puoi usare direttamente le string anche per l'inserimento del numero col tastierino...