When there is a sharp discontinuity in the displacement, the renderer will always produce those vertical micropolygons. That's because every time a new microvertex is created along the discontinuity, the displacement shaders are called and the result is always on one side of the discontinuity, never somewhere in between.
If possible, replace the function that is creating the discontinuity with something that has values in between 'on' and 'off'. The region does not need to be very wide, just wide enough to give the renderer some intermediate values to work with. Perhaps this is not possible with the functions you are using - I have not looked closely enough.
Matt