I wouldn’t say that serial/uart is unstable, this is a cheaper design widely used as 1:1 interconnect (console, BT, NFC, GPS, GSM modules…). There is no defined limit to the baud-rate, this is in practice limited by the clock generator capabilities, you can typically find ~4Mpbs capable UARTs integrated in modern SoCs. For sure, if you want strong data reliability, you will need to implement your own protocol on top (retransmit, ack, CRC, etc). USB is a serial bus which is a much more complex specification than a simple block of circuitry, however, concepts of reliability, interoperability, hotplug, etc are addressed. Device Behavior/functionnalities are also part of the spec. You can reach 480Mpbs with USB2.0.
Now, all depends on your need/goal. If you want to have the speed and data reliability of USB with the simplicity of serial-uart you can use The CDC (ACM) class which is typically offer you a similar interface to standard serial/uart. So, as said by ljking, you will be able to use standard open/read/write functions on the device interface (/dev/tty…).
Design of USB is such a way that you need a HOST and a SLAVE, If I doubt that your PC is SLAVE capable, the Dragonbord is able to act in this role. Indeed, thanks to its OTG capability the board can switch to HOST or SLAVE role. However, you need to know that the board will not be able to act as both HOST/SLAVE at the same time and therefore USB keyboard, mouse, etc will not be operational in SLAVE role.
Your setup will be:
COMPUTER(HOST/)USB <----> BOARD(SLAVE/)MICRO-USB
You also need to load the correct USB gadget(slave) driver on the dragonboard:
Then you should see a
/dev/ttyGS* on dragonboard side and a
/dev/ttyACM* on the Host side (in case of regular Linux Host),