AnalogRead e ritardi

Ma sei sicuro che si inchiodi all'analogRead e non alla comunicazione col GPS che c'è subito prima?
Potresti provare così:

Serial.println("Sono alla readline...");
readline();   //legge dati da GPS 
Serial.println("Adesso leggo il pin A0...");
  // se disponibile $GPRMC
  batt = analogRead (A0); 
Serial.println("Lettura fatta. Proseguo...");