Self signing would give you the benefits of encryption, but would not give the assurance that your clients were connecting to your server as it is not verifiable by a Certificate Authority.
Self signing the server against its IP address would put you at risk of IP hijacking. Using IP instead of domain name takes DNS spoofing out of the equation, but does not entirely remove the threat of MITM attacks, therefore you should not use IP match as the only validation mechanism.
It would be better to get a domain and a cheap domain validated certificate (DV Certificate) and make sure that clients are validating the Subject Alternative Name for a match during the handshake.
As well as the security benefits, this will also give you the convenience and portability in future if you ever need to relocate the server.
The exception to this is if you have total control over your client applications. Then you could use a self signed certificate and you could employ certificate pinning to ensure that it is your server that they are connecting to.