Simply make a virtual IP, and configure pihole to use it. It's as easy as configuring a (second) static network IP.
Using a different port is not a choice, if not impossible, because if pihole's not listening on port 80, then block-page and transparent pixel will not be served in response to ads, and sites will take long time to finish loading. Transparent pixel example
curl http://zdbb.net/ads.jpg <html> <head> <script>window.close();</script></head> <body> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"> </body> </html>
The OP above didn't realize they had broken pihole even though pihole admin interface is accessible by a different port in the browser.