I was actually going to suggest a similar system. You don't necessarily have to stop moving to turn: you could queue the turn in memory, and have the leg wait until it is slotted into the ground, then turn in addition to the original animation. This would prevent loss of speed. A pulse sent back from the rotor to the memory circuit could reset it so it doesn't turn more than once. You also could probably turn at 45 degree angles without a problem if you use a four-spoked leg. In addition to this, I recommend you make a separate steering animation for when you are stationary.
If you have a turret, you can try to control from the turret using ship remotes and wireless logic.
The real difficulty will be in steering upright walkers rather than crawlers. You would have to either keep balance for a biped, or find a good way to rotate for a hexapod.
though you come with a few good suggestions, the 45 degree is impossible with these legs.
no matter how many legs you have, it will not fit
and for the mechanism to work, it needs to fit. this brings me to the next problem:
the deployment. Deploying this crawler isn't what you think it is, I need to set up a rail and dock the crawler to it.
then start the animation and wait for it to go down, at that moment I drop the crawler and it will be aligned to the planet blocks.
Now this is pretty annoying if we ever want to use this for real. I haven't come up with a way to drop the crawler straight in the right position. using a different kind of block at the end of the leg could make it possible to move 45 degrees or not need it to align.
but this would make the leg dramatically longer.
About the walker, sometimes it just needs to look like turning, it doesn't need to be a real turning.
for example you can put the movement part on a rotor, this will make the main body move. then you have 2 legs.
1 lets you move left and right, 1 lets you move forwards and backwards.
now I do have an idea for auto navigation, but it would be rather counting and implementing.
I'd count how many times the leg has to drag the frame until it reaches the other side, then I let it move a few steps to the left/right
and then it would start moving backwards X amount of steps.