I don't know the reason for the instability of the output, but you would be in a better position to debug it if you understand a little more how it works.
What you have is a voltage divider formed by the photoresistor and 220ohm resistor. If the resistance of the photoresistor, at a given point, is R, the voltage measured by the Arduino is 220ohm/(220ohm+R).
If it is dark, R could be pretty high, say, 1Mohm, and the reading will be very low, on the order of 1mV. If it is bright, R will be much smaller, say, 1k, and the reading will be on the order of 0.9V.
It would be good to know what kind of a photoresistor you have to estimate its response at different lighting levels, but, without knowing it, I would increase the bottom resistor to 10K and see if you have any improvements.
First, it will increase your signal and, therefore, potentially improve the signal to noise ratio.
Second, it will limit the current at bright light, which could potentially cause excessive self-heating and instability (mentioned by glen_geek).
Based on the curve, I don't see any jumping. It would be useful to have more data and see if there is any obvious pattern.
I assume, you've blocked the sensor manually and saw the response changed (to make sure you are actually reading the output of the sensor - not some other floating pin.) If not, do it.
Not sure how the two LED's shown on the picture are used, but if, for some reason, you are turning them on, you may expect the output of the light sensor respond accordingly. In any case, it makes sense to unplug them, while you are debugging the issue with the sensor.
I would also check 5V: any noise on the 5V supply would directly translate to the noise in the sensor output (reduced by the divider).
Good luck with your project.
even in a very steady light
.... how do you know that for sure? \$\endgroup\$