Honestly none of them are anything great. I don't use any of the starters anymore, there are many better alternatives obtainable later in the game. The starters this generation are like you said, bad both in looks and in-game. Snivy is (in my opinion) very overrated. It has base 95 Defense and Special Defense and base 113 Speed, which are good but poor together. Bulky Pokemon such as Serperior (its final form) have no need for speed, high speed is better for sweepers (Pokemon with high Attack and/or Special Attack). Plus Grass is a poor defensive typing (it has 5 weaknesses), so Serperior's relatively bulky defenses don't help it that much. Serperior would be much better if either it had better offensive stats for its great Speed or better HP to increase its natural bulkiness. All in all my point is that it's stat distribution is bad and it is overrated. Oh and it has a shallow move-pool.
Tepig (final form Emboar) would of been better without the secondary Fighting typing. It has good HP and offensive stats, but its defensive stats and more importantly its Speed are terrible. Overall it doesn't take hits that well, it isn't the most frail thing in the world with its great HP but it's bad defenses don't help. Its offensive stats are great (base 123 Attack and base 100 Special Attack) but it has base 65 Speed which screws it over. It is outsped by many Pokemon, which in turn those Pokemon can KO him. I don't get what Nintendo was thinking, they should of given Serperior Emboar's great HP and given Emboar Serperior's great Speed. But they didn't so both of them are pretty crappy.
Personally I think Oshawott (final form Samurott) is the best starter. There are many good water types this new generation and until you beat the Elite Four and have the National Dex you can't get any exceptional Water types that I am aware of. Samurott is pretty much combination of the other two starters as far as stats. It has good physical bulkiness and decent special bulkiness, plus base 95 HP. It's offensive stats are decent too (base 100 Attack and base 108 Special Attack). It doesn't have the best move-pool in the world, but the handful of moves it can learn are pretty good.
I don't know what your particular preferences for Pokemon are, but I'll list some alternatives to the starters. The alternatives share the same typing as the starter listed, however they may have a secondary typing also. Also keep in mind they may not fit the role that you want them to, so do research before you get them. The ones I am listing are the ones available before the National Dex/Elite Four and I also did not list any main legendaries.
Snivy alternatives: Whimsicott (only in Pokemon Black; good for team support or stalling; frail defenses), Amoonguss (is also part Poison typing; good for team support and stalling), Ferrothorn (is also part Steel typing; is an amazing defensive wall), Virizion (is also part Fighting typing; is a great physical or special attacker).
Tepig alternatives: Darmanitan (is a great physical attacker; frail defenses however), Chandelure (is also part Ghost typing; an great special attacker; pretty frail defenses), Volcarona (is also part Bug typing; a great special attacker; pretty poor physical defense).
Oshawott alternatives: Jellicent (is also part Ghost typing; can be a special attacker or a wall; has fairly low Speed).
Also of the three starter's typings, Water is arguably the most useful. Like I said, all three starters are rather crappy but you need something to start out with! But the choice is yours. Hope I helped!
Have played Pokemon for years and still currently do