Routing just DNS is very easy.
Follow any wireguard guide, once you have the profile loaded on your phone/laptop change the allowed IP’s to your pihole. For me I have 2 piholes.
10.1.1.5
10.1.1.11
So in my allowed IP’s I changed it to
10.1.1.5/32, 10.1.1.11/32
I also have a “Split DNS” profile which is the exact same thing but the allowed IP’s is
10.1.1.0/24
Either profile will run my dns traffic through my piholes, but my “split DNS” Profile allows me to access everything at home but my internet is still routed outside the VPN.
I just imported the same profile on my phone 3 times and changed allowed IP’s to 3 profiles (Full, Split, DNS only)
As far as your Endpoint in concerned , you need to pick the lesser of the evils. What you could do is spin up a VPS. A virtual Server in say Google Cloud, Oracle, linode, OVH take your pick.
Install your OS of choice (personally I’m an Ubuntu Server guy), install wireguard and done.
VPS plans are typically based on resources (cpu, ram, SSD/HDD Capacity) wireguard need basically nothing. If you only have a handful of clients, say your phone and laptop, you can get away with the cheapest plan. Just make sure if there is data limits you are aware of those.
But after spewing all this. What are you trying to hide? (I say that in a technical sense, vs the “I have nothing to hide so why hide it”)
It’s worth noting that most websites and services are HTTPS. So no one except you and the content provider knows what that content is. Are you trying to hide from Google or Facebook? Cause a VPN won’t help with that. Just worth asking that question before jumping down the rabbit hole.
So maybe start simple? Get your feet wet. Grab a raspberry pi or old laptop and setup wireguard and Pihole on it. Go one step further and run unbound so your DNS doesn’t leave your network. Your home ISP can see the ip addresses visited and if they have this in place, but I doubt many do due to cost, sniffing the packets. But remember most stuff is https.