Have you tried mapping ?
// Use with 10K, 4.7k voltage divider adjust as needed
#define battPin 2 // battery read pin
Serial.begin( 9600 ); // Start interface
void battMon( )
int battLevel = analogRead( BATT_PIN );
valBatt = map( battLevel, 923, 1008, 0, 100 );
Serial.print( "Batt = ");
Serial.print( battLevel, DEC );
Serial.print( " " );
Serial.print( "valBatt = " );
Serial.println( valBatt, DEC );
I got this from somewhere I can't remember, when I was making a voltmeter.. It worked fairly well from what I remember. Of course the analog pin is not protected very well this way. Also remember there is no loop in the above, use it as a reference.