Sam isn’t short for anything, and he has no middle name.
It’s uncommon, but some people have no middle names. Sam Winchester is one of them.
The proof is extremely simple: not one of his parent figures has ever once called him Samuel or by first-and-middle/first-middle-last format during a dressing down or a fight.
When an American parent calls after their child and wants them to know they’re in deep shit, they use the full name: first and middle means trouble; first, middle, and last means you’re being summoned to a figurative firing squad. Neither John nor Dean nor Bobby ever did this, and the only reason not to is if there are no more names to use. John, being former military and a verbally abusive authoritarian, is the most telling of these, because if anyone was ever going to pull rank with full names it would be him.
Every single angel in the series, from the most formal to the most laidback, has only ever called him Sam or Sammy. Never Samuel; that was his grandfather. While he was named after their grandfather Samuel, he wasn’t given that full name, just as Dean was named after Deanna but not given that exact name.
Not once in the entire series did anyone ever call him Samuel until Rowena and she a) doesn’t know jack crap about them personally and b) may well be doing it specifically to be obnoxious. In the 222nd episode of the series – and never before – Dean calls him “Samuel” as a joke and Sam immediately corrects him with a patient smirk that acknowledges the joke of it.
The same goes for Dean. Canonically they have no middle names, and Sam isn’t short for anything.