Well actually I think I was doing it wrong. I stored raymarching effects in 2D texture. This is not correct because it suffers from issues.
Correct way is store raymarching effect in 3D texture, to get linear interpolation and no banding. And then perform sampling from it.
It seems to improve the result because it fixes some discontinuities. However it still probably needs temporal blending to get it smooth during camera movement.
Indeed the way to get smooth temporal blending independent of camera movement is to add some jitter which is shifted each frame, but it is hard to get it working right.