This is known as banding, and is the result of strong adjustments in 8-bit color depth. The original RGB values go from 0 to 255, and if you stretch a limited range from this, the values end up much further apart - until you see the stepping like here.
You should always work in 16 bit color depth, then you have 32 768 distinct values instead of 256, and this is not a problem.
Banding can also happen in the display system even if there is none in the file. This typically caused by bad calibration, cheap panels, broken profiles and so on. But in this case I suspect it's in the file.