Seems like it would be pretty easy on Linux, with python. I don’t have much windows sotware experience, so I have no idea how to read joystick input there.
The problem would be the lag, because marlin likes to take your serial command, and say, “OK, thank you” and just store it for later processing. It keeps a pretty long cache, so you’d overshoot your goals by a lot, I think. The same thing happens with the LCD, since it’s sending commands over serial as well. If you try to use the knob to move the z axis up and down, you can get a lot of commands buffered up, stop moving the knob, and the axis will move up and down several more times.