Ayuda con almacenamiento en eeprom

Buenas, pues estoy intentando realizar un pequeño programita pero nada no ha forma...

Lo que quiero hacer es enviarle al arduino una serie de numeros mediante el puerto serie y que el arduino lo almacene en la eproom para posteriormente rescatarlos y utilizarlos

los numeros / variables que tengo que almacenar en la eprom son valores desde 0 a 4000 y como por lo que he leido en cada byte de la eeprom solo puedo almacenar valores desde 0 a 255 pues se me ha ocurrido "dividir" el valor original en 4 digitos para almacenar cada digito en un byte de la memoria

por ahora lo que he conseguido almacenar son los valores en ascii pero no los valores como integer, dado que los valores los rescado del puerto serie pues no se como convertir de ascii a integer para almacenarlos en la memoria

podeis hecharme un cablecillo ? :-[

Exixten unos "templates" para grabar en la eeprom.

template int EEPROM_writeAnything(int ee, const T& value)
{
const byte* p = (const byte*)(const void*)&value;
int i;
for (i = 0; i < sizeof(value); i++)
EEPROM.write(ee++, *p++);
return i;
}

template int EEPROM_readAnything(int ee, T& value)
{
byte* p = (byte*)(void*)&value;
int i;
for (i = 0; i < sizeof(value); i++)
*p++ = EEPROM.read(ee++);
return i;
}

Para grabar

EEPROM_writeAnything(0, variable1);
EEPROM_writeAnything(5, variable2);

Para leer

EEPROM_readAnything(0, variable1);
EEPROM_readAnything(5, variable2);