But be careful with that, too. If FPS are dropping fairly low, the time difference is getting big. And for fast movements, the movement step can be really huge. At least huge enough to skip a wall, for example.
I'd go for time-based logics with a fixed maximum time (similar to the rendering loop, which mostly also has a fixed FPS).