I'd say the Galaxy S3 if you can stand the battery life (and by modern standards, it is not good, though you can upgrade the stock battery at least). I modified my BF's stock Galaxy S3 (turned on GPU rendering in developer options) and it runs VERY fast now...the UI is easily as fast and smooth as any current generation phone and it does not even have Kitkat yet. The Galaxy S3 is still a pretty good phone even by current standards.
For $300 though, you can get a OnePlus, which is significantly better than either phone. $300 can get you a Moto X as well. Either of these is preferable to either of the phones you listed IMO.