IPs are exposed to the world by default. Bots will happily sit there 24/7 scanning the entire IPv4 range, so you’re unlikely to see any impact from having a subdomain vs not. As others have said, you’re better off focusing on making sure your VPS is secure - SSH keys only, HTTPS only, reverse proxy with authentication and strong passwords, etc, maybe configuring the firewall to completely drop packets that aren’t from your home IP to non-VPN ports (and use a VPN from outside the house).
Alternatively, if it’s just you and maybe one or two others, you could look at something like Tailscale or Cloudflare Tunnel, in which case the VPS would be calling out to someone else to open a tunnel, and you wouldn’t need any ports open. That adds a dependency on someone else, though, which may not be ideal.
Yeah the IP:s are there for the world to see, but you won't easily know they belong to me unless I point to them from my domain.
As has been pointed out though, it makes no difference and no-one cares. No-one is manually cross referencing IP's and domains, and besides, what difference will it make anyway?
I've heard this argument before with someone saying they use DDNS on all customer sites instead of static IPs as it's "more secure" because there's a website out there with exposed desktops listed on it.
My approach is using Nginx and wildcard subdomains. The specific subdomain name that accesses the service is not listed in DNS anywhere and just knowing the IP address doesn't get you anything since m.y.i.p:443 is just getting you an nginx landing page.