Measuring Voltage of Battery

In this project, I have a +12 volt battery powering a modem, and an Arduino (which estimates the battery state, among other things). To power the Arduino, I used a switch-mode DC-DC converter (it outputs around 4.94V, rated for 1.5A).

I used a multimeter to measure an AA battery and it reads 1.38 volts.
When I connect the Arduino to the USB and use the readAnalogVoltage() sketch, it reads 1.38 too.
However, when I use the +12 V battery as a source, I get something less, like 1.32.

Is there anything I can do to make the battery-run Arduino reading more accurate?

If the 5V of the Arduino is lower, the Arduino measures a higher voltage at the analog inputs.
That is because the 5V is the reference voltage.
If the USB is 4.8V, the calculation for the voltage in the Arduino should be adjusted for that to read the right voltage.

You can use the internal reference of 1.1V (asuming you have a Arduio Uno).

You have to use a voltage divider for the range of 0 to 1.1V.

The 1.1V is never exactly 1.1V, so I adjust my calculation for that. I also use the average of a few samples to reduce noise.

Read this
http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/