I was looking into that a while ago, but sadly I did not find anything great. Back then I wanted to draw animated Binary Decision Diagrams, so I had to come with an incremental (and simple and fast) layout algorithm, which could determine positions for new nodes without interfering with the original graph. The result works fine, but it did require a fair amount of tweaking. (The comments document these tweaks extensively [1].)
If you want to write something more general, then that would probably be much more complicated.
[1] https://github.com/suyjuris/obst/blob/feb8e766ce226ca1afe862...