do I have a case against them in small claims court?
Yes. Your description altogether indicates that there is --at least-- an implicit contract between you and the roommates. That implicit contract is palpable from the roommates' subsequent conduct, which includes --but is not necessarily limited to-- their excuses and promises.
Although there is no written contract between you and the roommates, evidence that you have paid utilities in full places on your roommates the burden of disproving the default (and common sense) presumption that bills would be split among all four roommates.
Your landlord can testify via an affidavit what he knows about that arrangement and/or what he informs each new roommate on the issue of how utilities are paid.
You might want to email your roommates a reminder [to pay you] in such a way that prompts them to reflect their excuses/promises/admissions in writing. The terms of their written response might evidence an oral agreement.
In the alternative, the roommates would have the burden to prove that they paid you, or that you promised to cover their utilities for free. The former scenario is precisely why a reasonable payer typically requires --or should require-- a receipt when making payments (as opposed to the payee when receiving them). Regardless, your description suggests that your roommates would be unable to prove either scenario.
Also the landlord could include in his affidavit that the roommates have defaulted on their rent payments as well. If the landlord refuses to produce an affidavit, you can always visit the court where eviction proceedings are taking place and obtain copy of the relevant records. With those records you would evidence the roommates' pattern of lack of payment.
Although obtaining copies from the court makes your landlord's affidavit somewhat unnecessary, it is in the landlord's best interest to cooperate with you because (1) it would be unreasonable for him to alienate himself from the only tenant who honors his lease, and (2) he might need your cooperation as witness at some point.
Even if the roommates were successful in proving that there was neither a verbal agreement nor an implicit contract but only "unfounded expectations" on your part, you could ask for a ruling in equity in case your claim of breach of contract fails.
In terms of mere "expectations", it is much more reasonable for you to expect them to pay their share than for three three individuals to presume an unrelated roommate will cover their utilities for free. The latter just departs from common sense and common practices.
how do I prevent this from happening again with future roommates?
Strictly speaking, it is impossible to absolutely prevent that situation from occurring again. However, you may take the following precautions to reduce your exposure.
Have your roommates sign an agreement that reflects each party's obligations and deadlines.
Your agreement should also state that it is each roommate's responsibility to keep his/her receipts --or akin evidence-- in case a dispute for non-payment arises. This would streamline the production of evidence if the matter ends up in court.
Consider whether or not asking each party for an aval or endorser is practicable. This provides some sort of "insurance" of roommates' default risk.
Lastly, do not wait for a party's debt to accumulate that much before taking legal action. The longer you wait, the unlikelier you are to recover that money because the party may go broke or simply disappear. Moreover, keep in mind that if a party's debt exceeds the maximum amount handled in Small Claims Court, your litigation will become more involved because it would have to be in a court of general jurisdiction (meaning a circuit or district court).