All the battery monitor does is run the battery voltage through a resistor divider (to drop its value to half) and then read that value on an ADC pin. In order for this to work you have to provide a stable voltage to the Arduino's AREF pin to use as reference. Gamebuino feeds the ~3.7 battery voltage through the MIC5203 regulator to provide a stable 3.3V, regardless of the battery voltage, which is used to both power the device and provide a stable reference voltage. In your case you're feeding the raw battery voltage to your Nano and then reading the value coming out of the resistor divider, which will always be about 50% regardless of the actual battery level.
Your best best here would be to run the battery voltage through a 3.3v regulator like the 5203 or maybe
an 8533 circuit like this one. Failing that, you need to provide a stable reference voltage to the Nano's AREF pin....a
zener diode circuit would be a simple solution, just make sure the zener voltage is equal to or less than the lowest level you expect your battery to reach.