Inaccurate analog readings when powered via laptop PSU

Serial.print(analogRead(A0) * 4.30 / 1023.0, 3); // three decimal places
Why? That's a 4300 count. A Nano only has a 10-bit A/D (1024 counts).
4300 is more than 12 bits.

In post#3 you mention a Nano.
A Nano has a schottky backflow protection diode between USB power and VCC.
That diode drops USB voltage by ~0.4volt.
That increases analogue readout by 5/4.6... = ~9% compared to the laptop supply.

External Aref derived from VCC is as instable as VCC.
If you want a stable readout independent of VCC, then use the internal 1.1volt Aref.
And drop battery voltage with a voltage divider to ~1volt.
Leo..