German analogy: Like the difference between betontes "o" in Mohn and dem reduzierten "а"-Laut in kommt [kɔmt] → das О in "ko-" ist fast ein A. Russisch macht das viel konsequenter als Deutsch.
Real examples you already know
МОСКВА
mas-KVA
Moscow — the first О is unstressed → "a"
КОТ
KOT
cat — О is stressed → stays "OH"
ВОДА
va-DA
water — first О is unstressed → "а"
ОКНО
ak-NO
window — first О unstressed → "а"; second О unstressed → "uh"
ДОМ
DOM
house — О stressed → "OH"
РОССИЯ
ras-SI-ya
Russia — О is unstressed → "а"
GeoGuessr tip: You don't need to produce perfect stress for reading signs — but knowing that О can sound like А explains why Russian speakers seem to say "Maskvá" not "Moskvá". The spelling is always О; reduction is automatic in speech.
The rule in one sentence
Reduction rule
О is pronounced OH when stressed. Everywhere else it collapses to AH/UH — the same neutral vowel as unstressed А.
Note: In very unstressed positions (not directly before the stress) it can reduce even further, almost to a short "uh" or even an "i"-like sound — which is what you've been noticing! This is the natural endpoint of Russian reduction. It's called ikanye in linguistics.