I was seeking for test frameworks for Android UI automation and I stumbled upon UI Automator and Espresso and this is the part I am confused about
Actually, you don't need to choose. UIAutomator and Espresso use the same instrumentation runner, so you can use commands from both of them in a single test. Espresso has variety of matchers, assertions and actions on UI, that automator doesn't have:
Espresso Cheat Sheet
Espresso is running in separate thread and it is really fast comparing to other test frameworks.
as Summary: use both of them in your tests, Espresso is main and UIAutomator as an additional tool for OS integration.