I use duckdns, and thus have a xyz.duckdns.org domain, that points to the dynamic ipv4 address of my server. I do not host my own DNS server, rather I rely on a cheap Website / Mail / domain bundle. There I can enter my duckdns domain as a CNAME DNS entry. Thus every DNS lookup that is not for the remote hosted Website will resolve the duckdns domain and finally end at my server.
I am not sure where you want to host your DNS server or also for what specific reason... If you don't have a domain, you kind of don't need to host a DNS, and every domain provider I had, also offered a DNS server with it.
Yes exactly, additionally you probably don't want to host your pi hole for external use (mobile phone or laptop in a different network) for the reason of latency.
The delay that is imposed by visiting your pi hole at home for each DNS request is going to be very unpleasant.
Rather rely on an external dns provider that provides pi hole like funticionality.
But this does not mean that you can't also host your pihole for internal use. I use it not just for removing ads, but also to allow the access of local domains.