The unloaded PV voltage tends to flatten out at around 0.7V per cell (there may be many cells in series in a single panel) even under low light conditions. As you have noticed, as the light level increases, the voltage rises, hits a limit then goes no higher. It's an electrical phenomenon and nothing in software can avoid it.
The solution is to load the PV so the cells have to 'push' harder and show a better light to voltage relationship. You can do it by wiring a resistor across the panel or if you are trying to conserve the power, use another MCU pin to periodically switch a load on, measure the voltage then switch the load off again.
The light level to output power relationship of PV panels is complicated and the reason why maximum power point tracking (MPPT) is used on larger systems.
Brian.