I’m trying to do the same thing right now. Gonna try a similar approach, except i find the camera is tilting and perspective along with it. That’s what causes the sliding effect.
Try also tracking the white dots on the horizon in Wireframe mode, or if your camera is too low for that, put two light sources in the background just for the wireframe render, they appear as white dots as well, one on the left and one on the right. they give a much more clear motion track, from here I can link the data to a null. Then link the null’s position to your camera’s point of interest, but instead of using the straight up numbers, invert the x and y values. this way when your waves move up in the frame, the camera is in fact looking down.
Then just fiddle with your expression for the z rotation, and you should be gold.
If you found an easier way than this please post back. I wanna do more with this.