Sorry to hear of the compromise... It's a bad feeling, and I myself have a very hard time trusting a machine that has been compromised anymore.
Anyway, K.I.S.S. The simplest way for an attacker to gain access is by attacking the client machine, or intercept data (in some way: keystroke logger, sniffer on the client, etc.) from the client machine or the person using the client machine. In the case of a keystroke logger, it would not matter how secure the protocol or app is, the logger would still get the password.
On the server side: limit which IPs can access the service (even if the attacker has the pw, they can't get to the service without using an authorized client); enforce strong passwords (as it seems you are already doing - kudos, that's a tough one); encourage updated virus and malware protection; encourage an environment of security so it is in the forefront of the users' minds. And hope that what you do is enough.
Good luck!