When it comes to small movements, the only way that I found to be working was using nnedi2() in avisynth. However, it is slower than most if not all the other deinterlacers around. CtS's suggestions might do it, but on small mouth movements or credit rolls they might fail, whereas nnedi2 surely won't.
You can get the nnedi2 dll for avisynth
here.
(I'm assuming you know how to use avisynth, but in the case you don't, I suggest you to read AbsoluteDestiny & ErMaC's Technical Guides to All Things Audio and Video.)