Practice is critical, but one little piece of advice helped me immensely. Be using the throttle, or steering the boat, but not both at the same time. Every boat is different, but mine would begin moving with just a big blast of throttle. So I would "blast" for a second or perhaps two, then reduce throttle to idle. Then I would steer with the rudder. If the boat slowed down so much that I lost steering, another short blast would put more way on.
As Stu said, go practice in open water. Drop a fender overboard for a visual reference. Two fenders lets you imagine a dock face. Four fenders describe the corners of a slip. If you are in water shallow enough to "attach" the fenders to the bottom using a weighted line, they will not move, which makes your practice more realistic. Plus, in open water, you can approach from all different directions, which lets you practice winds on the beam, the bow, the stern, and everything in between.