I think you are confusing cause and consequence as they relate to latency.
A satellite connection has high latency. That's an inescapable effet of the distance the signal has to travel to reach the satellite (typically in geostationary orbit), even at the speed of light.
This affects TCP connections most because TCP acknowledges packets as they are received, and imposes a limit on the number of bytes that can be "in flight" between the endpoints at any given time. This is the TCP window, and it determines the max bandwidth for a single TCP session on your link as WindowSize /latency. As the latency increases, the max bandwidth for your session decreases.
If you use UDP, you are no longer constrained by a limit like the TCP window size, so you can in theory reach a much higher bandwidth for that connection. However, the latency is still there, you have just avoided one of its effects.
Ultimately, if your application really needs TCP, typically because it requires high reliability of its data transfer, you will probably be better off tuning your TCP parameters than switching to UDP, because in the latter case you would end up having to reimplement reliability higher up the stack. There are a number of RFCs that deal with how to use TCP in high-latency environments, such as https://tools.ietf.org/html/rfc1323