IP addresses are explicitly not designed to be bound by hardware where as MAC addresses are. MAC addresses can be changed temporarily most of the time but each device is supposed to have a globally unique factory assigned MAC address.
Furthermore, MAC is specific to Ethernet, and while it is now the defacto Layer 2 encapsulation method, it wasn't always the case and you never know if something better will come along in the future.
The different networking layers are there to allow them to be swapped for different technologies.
The two layers you are talking about here are layers 2 and 3. Layer 2 in this scenario is Ethernet - from which MAC addresses arise, and Layer 3 is IP.
Ethernet only works at the local level, between network devices connected to a broadcast network "datalink", whereas IP is a routable protocol and so can target devices on remote networks.
The requirements of each of these are different. Ethernet specifies a family of technologies that allow packets to be sent and received between network devices, whereas IP defines a protocol that allow packets of data to traverse multiple networks.
Neither is reliant on the other, which is what give networking its flexibility. For example, you may choose to connect to your internet service using IP over ethernet, but in your internal network, you might choose to use IP over... paper. Where someone writes down the contents of each packet and physically walks it over to another machine and types it in. Clearly this would not be particularly fast, but it would still be IP provided the person carrying around the bits of paper respecting IP routing rules.
In the real world there are different datalink protocols that you are already using two different ones (although their addressing schemes are the same): 802.3 - ethernet, and 802.11 - wifi.
IP doesn't care what the underlying layer is.
Equally, IP can be swapped out for different network layer protocols (provided it happens for all participants). Such as ATM.
While there is nothing directly preventing the creation of a protocol that encompasses both layer 2 and layer 3, it would be less flexible, and so less attractive, and so unlikely to be used.
Best Answer
Could Ethernet have used IP addresses instead of it's own data-link-layer addresses? Certainly not, if it wanted to be agnostic about what layer-3 protocol it used.
We design networking protocols in layers so that we can mix-and-match layers.
Ethernet was originally developed by Bob Metcalfe et alia at Xerox PARC to be Network-layer agnostic, because their goal wasn't just TCP/IP access but also for Xerox's own proprietary XNS network protocol stack/suite.
DEC (Digital Equipment Corporation) became another early adopter, using it primarily for their DECnet protocol stack/suite.
In the late 80's and early 90's there were lots of competing LAN protocol suites (all completely independent of TCP/IP) running on corporate Ethernet LANs. Besides XNS and DECnet, there was Apple's AppleTalk (EtherTalk), Novell's IPX, Banyan VINES, NetBEUI, DLC/LLC, IBM SNA, OSI/ISO, and others I've forgotten.
So, Yes, you can use Ethernet without IP. Lots of corporate networks did it in the 80's and 90's.
Because Ethernet was designed to not care about what Layer-3 (Network Layer) protocol was running on it, it was relatively easy for those corporate LANs to support mixes of various vendors' equipment, and it was relatively easy for those LANs to add IPv4 support when the Internet took off in the mid to late 90's, and it has been relatively easy for us to add IPv6 support now.