Public-facing DNS are likely to have lower latency on their lookup times (rootserver lookups excepted) than your latency from your ADSL/VDSL connection so they'll all be much of a muchness in terms of average performance. It's the latency between you and them which is the main factor.
For example - you're unlikely to have latency of much less than 10ms on any ADSL/VDSL circuit. Then you add the latency to the server - which should (in theory) be mainly distance related, so you don't pick a DNS in the USA for example
So lets say the latency between you and the DNS averages 20ms - the DNS lookup will take a couple of ms max so its usually <10% of the overall latency.
Your machine's operating system will have a cache of recent DNS requests you've made & will try to use that if possible but its not that persistant on some OSs & is seriously limited in size on others. You may find you can "tweak" the settings to improve matters but there's too many OSs to give advice on that
The other thing you can do is to have a local caching DNS server - ie a machine in your house which deals with all the other machines' DNS requests. You'll probably find that there is a lot of overlap between sites people use so chances are quite good the DNS request might be resolved locally, which is much much faster.
You can think of any DNS as a caching server to some extent as every zonefile (DNS stuff) has a time-to-live entry (usually a couple of days) and given enough space the DNS will store that lookup until the time-to-live expires, at which point it will (usually) discard the record from the cache.
Going to the rootservers (these list which DNS has authority for a given domain) is a lengthy business in terms of latency so you want to avoid that if at all possible.
Basically it goes :
Rootserver<->Authoritative DNS<->Your DNS<->Client (you). You want to keep the lookup as close as possible to "you" as that reduces latency. Ideally you want "Your DNS" to already hold the record required so it never goes any further up the chain.
Public DNS which offer other services (such as blocking) are IME mainly slower than those which don't for obvious reasons.
ISPs DNS in my experience are quite frequently forgotten about in terms of resources - basically because they're not anything the average customer cares about & ISPs can't make money from them. Things grind to a halt/people moan & it gets upgraded/forgotten about for another few years. I stopped using them years ago by running a caching (windows 2k3) DNS box which works well here. YMMV.
Oh and the downside of having your own local caching DNS is that it obviously has to be powered up all the time - plenty of low powered stuff these days anyway, our 4 year old Atom-based Win2k3 box (we had a license, that's why it wasn't 2k8) eats about 40W max & that's acting as a home server (backups/streaming/etc).
I have a vague recollection of explaining this to someone over on the Sky forums (with some graphs) - probably did a better job there, as I keep getting interrupted by people delivering parcels, none of which are for me
Edit - I had namebench locally & ran it back then so here you go, these are the stats with a local caching server. Everything under 9ms is being resolved locally (85% hits on cache), everything over that is being forced to external DNS & the local machine's DNS cache is bypassed. Never got to the bottom of the 3 timeouts, happened every time. I bypass Sky's DNS so you can see what happens (155ms lookup) when the local caching server has to go to the rootservers - swings & roundabouts, works when you have a few users in the house & probably doesn't if you're alone.
http://namebench.appspot.com/id/71520003