I’m going to take a long time to say “none”.
Glottal stop – Wikipedia
The most common convention in Latin script is indeed to use apostrophe; and the disadvantage of the apostrophe is that it’s easy to miss, easy to conflate with a quotation mark, and it doesn’t look like a “real” letter. The same goes for patched apostrophes, such as the ʻOkina <ʻ> and the Modifier letter right half ring <ʾ>, or the spacing grave <`>. In fact, many writing systems end up making it optional. The status of the Hamza <ء> in Arabic script is also diacritic-y—by contrast with Hebrew, where aleph ⟨א⟩ is its own letter (when it’s not being a Mater lectionis).
Within Latin script, some alphabets have indeed plugged in distinct letters instead; from Wikipedia, Maltese and Võro use <q>, Malay uses <k>, and a few languages use <h>. That is not a universal solution though. Likewise, some Cyrillic alphabets use Palochka <Ӏ>, but in other alphabets that character is used as an ejective diacritic. (And yes, ejectives are also notated with apostrophes.)
The IPA symbol has begotten the Glottal stop (letter) <ʔ> with lowercase ⟨ɂ⟩ as a letter in Canadian indigenous languages. Wikipedia reports a 2015 case where women in the Northwest Territories demanded the right to use <ʔ> in their daughters’ names. (What’s in a Chipewyan name?) The Territory’s computers, of course, were Latin-1 only. <ʔ> often ends up rendered ad hoc as <?>, as you’d expect; and of course, that’s even worse than using an apostrophe, because everything treats it as punctuation.
ASCII Arabic (Arabic chat alphabet) renders the hamza as the lookalike <2>. Not a scalable solution either.
Voiced pharyngeal fricative – Wikipedia
This is a rarer sound cross-linguistically, but one that contrasts with the glottal stop in Arabic. In Chechen, it’s an allophone of the Palochka letter; in Avar it’s the digraph <гӏ>. Somali, as Joseph Boyle’s answer notes, uses <c>. Arabic has the Ayin <ع> for the phoneme, and in Hebrew it is also traditionally <ע>—although most Hebrew-speakers pronounced that now as a glottal stop.
ASCII Arabic renders the ayin as the lookalike <3>, which is just as bad as <2>. Arabic transliteration into Latin uses variants of apostrophes: <ʿ>, superscript <[math]^c[/math]>, <`>—with lots of ensuing confusion with the hamza; and of course, they are usually left out in transliterations anyway:
In loanwords, ʿayin is commonly omitted altogether: Iraq العراق al-ʿIrāq, Oman عمان ʿUmān, Saudi Arabia العربية السعودية al-ʿArabiyyah as-Saʿūdiyyah, Arab or Arabic عربي, ʿArabī, Amman عمان ʿAmmān, etc.
… Nope. No good options. It’s enough to make you give up and dump IPA symbols into your Romanisation—or the unchanged Arabic letters.