I have some suggestions too.
Because you are using relatively high resistor values, it’s probably too high voor the ADC to properly convert (it ends up too low). In the case of ATmega AVR’s (Arduinos) for example, the data sheet advices you to use less than 10kΩ of resistance on analog inputs when measuring. You can solve this either by lowering R1 (and R2 with it), or by putting a voltage following opamp between the divider and the analog input.
It’s also maybe a good idea to switch wifi off and add some delay before measuring the voltage. Because the more power you draw, the higher the voltage drop will be. Which means that you might be measuring a couple of millivolts less than the actual charge. This is probably negligible from your point of view though, so might not bother doing that.
Another thing you might want to do, is measure the resistors with your multimeter and use the measured values in your code. It’s all about the ratio, so measuring them will give you some more accuracy for sure. You don’t have to bother having 1% resistors in that case either.
Oh and if you’re going to go the route of adding an opamp in your circuit, you might consider using a voltage reference as well. At home I have a solar charger hooked up to a battery and I measure the charge using a 10 volt reference and a differential amplifier circuit. This measures the difference between the 10 volt reference and the battery. Which results in 0-4(max), when fully charged. Again, this will give you a nice increase in accuracy.